/*************************************************************************************
 *
 *	模块名称 : Linux函数概要信息查询模块
 *	文件名称 : funbrief.h
 *	版   本 : V1.0
 *	说   明 : 根据用户输入 函数名称 查找 函数概要 并打印
 *	修改记录 :
 *		     版本号       日期         作者        说明
 *	         V1.0     2022-05-20      YT        发布
 *
 *	Copyright (C), 2022-2030, xxxx
 *
 *************************************************************************************/

#ifndef _FUNBRIEF_H
#define _FUNBRIEF_H

#define MAX_FUN_NAME_SIZE        20      // 定义函数名称最大字节数
#define MAX_FUN_PROTOTYPE_SIZE   200     // 定义函数原型和概要最大字节数
#define MAX_FUN_BRF_SIZE         100     // 定义函数概要文件名最大字节数
#define MAX_HAED_LIST_NUM        10      // 定义函数相关最多的头文件个数
#define MAX_DEMO_LIST_NUM        10      // 定义函数相关最多的示例文件个数
#define MAX_FUN_LIST_NUM         100     // 定义最大可查询的函数个数

#define STR_EXIT              "EXIT"     // 所约定的退出字符


typedef struct 
{
    char  strFunName[MAX_FUN_NAME_SIZE];             // 函数名称字符串
    int   iManIndex;                                 // 函数所在的 Linux Manual Character Number
    char  strFunPrototype[MAX_FUN_PROTOTYPE_SIZE];   // 函数原型字符串
    char  strFunBrief[MAX_FUN_PROTOTYPE_SIZE];       // 函数概要字符串
    char *pstrHeadList[MAX_HAED_LIST_NUM];           // 函数相关的头文件名称指针列表, NULL表示列表尾
    char *pstrDemoList[MAX_DEMO_LIST_NUM];           // 函数相关的示例文件名称指针列表, NULL表示列表尾
    char  strBriefFile[MAX_FUN_BRF_SIZE];            // 函数概要文本文件名
}FunBriefTypedef;  //函数概要信息结构体, 词典条目信息




/**************************************************************************
 * 函数名称: fbIsExitWord
 * 函数说明：判断字符串是否为约定的退出字段
 * 参   数： strWord 待判断的字符串
 * 返回值  : 0  字符串为约定的退出字段
 *          非0 字符串不是约定的退出字段
 *************************************************************************/
extern int fbIsExitWord( const char strWord[] );


/**************************************************************************
 * 函数名称:  fbFindWord
 * 
 * 函数说明： 在函数词典中查找用户输入的函数名strFunName.                   
 * 
 * 参   数： strFunName     待查找的 函数名称字符串, 包含 打印选项
 *          piIndex        解析出的 函数概要信息结构体数组 的下标
 *          pcPringOption  解析出的 打印选项, 返回给主调函数
 * 
 * 返回值  : *piIndex        >=0 的整数  :  所匹配的 函数概要信息结构体数组 的下标
 *                         -1   　　    :  未找到与 函数名字符串 所匹配的 函数词典条目
 *          
 *          *pcPrintOption  0          :  默认选项,    只打印 函数概要信息文件 的名称
 *                         'd'         :  detail选项, 打印 函数概要信息文件 的细节内容
 * 
 *************************************************************************/
extern void fbFindFun( const char strFunName[], int *piIndex, char *pcPrintOption );


/**************************************************************************
 * 函数名称: fbPrintFunInformation
 * 函数说明：在屏幕上输出函数概要信息
 * 参   数： iIndex          待输出的函数概要信息结构体数组的下标 ( -1 表示 无效条目 )
 *          cPrintOption    输出打印选项 ( 0: 默认选项, 'd' 打印细节)
 * 返回值  : 无          
 *************************************************************************/
extern void fbPrintFunInformation( const int iIndex, const char cPrintOption);


#endif